// Copyright (c) 2010, SMB SAAS Systems Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  SMB SAAS Systems Inc.  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace dotPanel.Providers.DNS {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="DNSServerSoap", Namespace="http://smbsaas/dotpanel/server/")]
    public partial class DNSServer : Microsoft.Web.Services3.WebServicesClientProtocol {
        
        public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;
        
        private System.Threading.SendOrPostCallback ZoneExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetZonesOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddPrimaryZoneOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddSecondaryZoneOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteZoneOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateSoaRecordOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetZoneRecordsOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddZoneRecordOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteZoneRecordOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddZoneRecordsOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteZoneRecordsOperationCompleted;
        
        /// <remarks/>
        public DNSServer() {
            this.Url = "http://localhost/dotPanelServer11/DnsServer.asmx";
        }
        
        /// <remarks/>
        public event ZoneExistsCompletedEventHandler ZoneExistsCompleted;
        
        /// <remarks/>
        public event GetZonesCompletedEventHandler GetZonesCompleted;
        
        /// <remarks/>
        public event AddPrimaryZoneCompletedEventHandler AddPrimaryZoneCompleted;
        
        /// <remarks/>
        public event AddSecondaryZoneCompletedEventHandler AddSecondaryZoneCompleted;
        
        /// <remarks/>
        public event DeleteZoneCompletedEventHandler DeleteZoneCompleted;
        
        /// <remarks/>
        public event UpdateSoaRecordCompletedEventHandler UpdateSoaRecordCompleted;
        
        /// <remarks/>
        public event GetZoneRecordsCompletedEventHandler GetZoneRecordsCompleted;
        
        /// <remarks/>
        public event AddZoneRecordCompletedEventHandler AddZoneRecordCompleted;
        
        /// <remarks/>
        public event DeleteZoneRecordCompletedEventHandler DeleteZoneRecordCompleted;
        
        /// <remarks/>
        public event AddZoneRecordsCompletedEventHandler AddZoneRecordsCompleted;
        
        /// <remarks/>
        public event DeleteZoneRecordsCompletedEventHandler DeleteZoneRecordsCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/ZoneExists", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool ZoneExists(string zoneName) {
            object[] results = this.Invoke("ZoneExists", new object[] {
                        zoneName});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginZoneExists(string zoneName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("ZoneExists", new object[] {
                        zoneName}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndZoneExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void ZoneExistsAsync(string zoneName) {
            this.ZoneExistsAsync(zoneName, null);
        }
        
        /// <remarks/>
        public void ZoneExistsAsync(string zoneName, object userState) {
            if ((this.ZoneExistsOperationCompleted == null)) {
                this.ZoneExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnZoneExistsOperationCompleted);
            }
            this.InvokeAsync("ZoneExists", new object[] {
                        zoneName}, this.ZoneExistsOperationCompleted, userState);
        }
        
        private void OnZoneExistsOperationCompleted(object arg) {
            if ((this.ZoneExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ZoneExistsCompleted(this, new ZoneExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/GetZones", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string[] GetZones() {
            object[] results = this.Invoke("GetZones", new object[0]);
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetZones(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetZones", new object[0], callback, asyncState);
        }
        
        /// <remarks/>
        public string[] EndGetZones(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public void GetZonesAsync() {
            this.GetZonesAsync(null);
        }
        
        /// <remarks/>
        public void GetZonesAsync(object userState) {
            if ((this.GetZonesOperationCompleted == null)) {
                this.GetZonesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetZonesOperationCompleted);
            }
            this.InvokeAsync("GetZones", new object[0], this.GetZonesOperationCompleted, userState);
        }
        
        private void OnGetZonesOperationCompleted(object arg) {
            if ((this.GetZonesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetZonesCompleted(this, new GetZonesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/AddPrimaryZone", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void AddPrimaryZone(string zoneName, string[] secondaryServers) {
            this.Invoke("AddPrimaryZone", new object[] {
                        zoneName,
                        secondaryServers});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddPrimaryZone(string zoneName, string[] secondaryServers, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddPrimaryZone", new object[] {
                        zoneName,
                        secondaryServers}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndAddPrimaryZone(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void AddPrimaryZoneAsync(string zoneName, string[] secondaryServers) {
            this.AddPrimaryZoneAsync(zoneName, secondaryServers, null);
        }
        
        /// <remarks/>
        public void AddPrimaryZoneAsync(string zoneName, string[] secondaryServers, object userState) {
            if ((this.AddPrimaryZoneOperationCompleted == null)) {
                this.AddPrimaryZoneOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddPrimaryZoneOperationCompleted);
            }
            this.InvokeAsync("AddPrimaryZone", new object[] {
                        zoneName,
                        secondaryServers}, this.AddPrimaryZoneOperationCompleted, userState);
        }
        
        private void OnAddPrimaryZoneOperationCompleted(object arg) {
            if ((this.AddPrimaryZoneCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddPrimaryZoneCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/AddSecondaryZone", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void AddSecondaryZone(string zoneName, string[] masterServers) {
            this.Invoke("AddSecondaryZone", new object[] {
                        zoneName,
                        masterServers});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddSecondaryZone(string zoneName, string[] masterServers, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddSecondaryZone", new object[] {
                        zoneName,
                        masterServers}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndAddSecondaryZone(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void AddSecondaryZoneAsync(string zoneName, string[] masterServers) {
            this.AddSecondaryZoneAsync(zoneName, masterServers, null);
        }
        
        /// <remarks/>
        public void AddSecondaryZoneAsync(string zoneName, string[] masterServers, object userState) {
            if ((this.AddSecondaryZoneOperationCompleted == null)) {
                this.AddSecondaryZoneOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSecondaryZoneOperationCompleted);
            }
            this.InvokeAsync("AddSecondaryZone", new object[] {
                        zoneName,
                        masterServers}, this.AddSecondaryZoneOperationCompleted, userState);
        }
        
        private void OnAddSecondaryZoneOperationCompleted(object arg) {
            if ((this.AddSecondaryZoneCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddSecondaryZoneCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/DeleteZone", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteZone(string zoneName) {
            this.Invoke("DeleteZone", new object[] {
                        zoneName});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteZone(string zoneName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteZone", new object[] {
                        zoneName}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndDeleteZone(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void DeleteZoneAsync(string zoneName) {
            this.DeleteZoneAsync(zoneName, null);
        }
        
        /// <remarks/>
        public void DeleteZoneAsync(string zoneName, object userState) {
            if ((this.DeleteZoneOperationCompleted == null)) {
                this.DeleteZoneOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteZoneOperationCompleted);
            }
            this.InvokeAsync("DeleteZone", new object[] {
                        zoneName}, this.DeleteZoneOperationCompleted, userState);
        }
        
        private void OnDeleteZoneOperationCompleted(object arg) {
            if ((this.DeleteZoneCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteZoneCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/UpdateSoaRecord", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateSoaRecord(string zoneName, string host, string primaryNsServer, string primaryPerson) {
            this.Invoke("UpdateSoaRecord", new object[] {
                        zoneName,
                        host,
                        primaryNsServer,
                        primaryPerson});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUpdateSoaRecord(string zoneName, string host, string primaryNsServer, string primaryPerson, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UpdateSoaRecord", new object[] {
                        zoneName,
                        host,
                        primaryNsServer,
                        primaryPerson}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndUpdateSoaRecord(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void UpdateSoaRecordAsync(string zoneName, string host, string primaryNsServer, string primaryPerson) {
            this.UpdateSoaRecordAsync(zoneName, host, primaryNsServer, primaryPerson, null);
        }
        
        /// <remarks/>
        public void UpdateSoaRecordAsync(string zoneName, string host, string primaryNsServer, string primaryPerson, object userState) {
            if ((this.UpdateSoaRecordOperationCompleted == null)) {
                this.UpdateSoaRecordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSoaRecordOperationCompleted);
            }
            this.InvokeAsync("UpdateSoaRecord", new object[] {
                        zoneName,
                        host,
                        primaryNsServer,
                        primaryPerson}, this.UpdateSoaRecordOperationCompleted, userState);
        }
        
        private void OnUpdateSoaRecordOperationCompleted(object arg) {
            if ((this.UpdateSoaRecordCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateSoaRecordCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/GetZoneRecords", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public DnsRecord[] GetZoneRecords(string zoneName) {
            object[] results = this.Invoke("GetZoneRecords", new object[] {
                        zoneName});
            return ((DnsRecord[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetZoneRecords(string zoneName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetZoneRecords", new object[] {
                        zoneName}, callback, asyncState);
        }
        
        /// <remarks/>
        public DnsRecord[] EndGetZoneRecords(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((DnsRecord[])(results[0]));
        }
        
        /// <remarks/>
        public void GetZoneRecordsAsync(string zoneName) {
            this.GetZoneRecordsAsync(zoneName, null);
        }
        
        /// <remarks/>
        public void GetZoneRecordsAsync(string zoneName, object userState) {
            if ((this.GetZoneRecordsOperationCompleted == null)) {
                this.GetZoneRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetZoneRecordsOperationCompleted);
            }
            this.InvokeAsync("GetZoneRecords", new object[] {
                        zoneName}, this.GetZoneRecordsOperationCompleted, userState);
        }
        
        private void OnGetZoneRecordsOperationCompleted(object arg) {
            if ((this.GetZoneRecordsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetZoneRecordsCompleted(this, new GetZoneRecordsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/AddZoneRecord", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void AddZoneRecord(string zoneName, DnsRecord record) {
            this.Invoke("AddZoneRecord", new object[] {
                        zoneName,
                        record});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddZoneRecord(string zoneName, DnsRecord record, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddZoneRecord", new object[] {
                        zoneName,
                        record}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndAddZoneRecord(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void AddZoneRecordAsync(string zoneName, DnsRecord record) {
            this.AddZoneRecordAsync(zoneName, record, null);
        }
        
        /// <remarks/>
        public void AddZoneRecordAsync(string zoneName, DnsRecord record, object userState) {
            if ((this.AddZoneRecordOperationCompleted == null)) {
                this.AddZoneRecordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddZoneRecordOperationCompleted);
            }
            this.InvokeAsync("AddZoneRecord", new object[] {
                        zoneName,
                        record}, this.AddZoneRecordOperationCompleted, userState);
        }
        
        private void OnAddZoneRecordOperationCompleted(object arg) {
            if ((this.AddZoneRecordCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddZoneRecordCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/DeleteZoneRecord", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteZoneRecord(string zoneName, DnsRecord record) {
            this.Invoke("DeleteZoneRecord", new object[] {
                        zoneName,
                        record});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteZoneRecord(string zoneName, DnsRecord record, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteZoneRecord", new object[] {
                        zoneName,
                        record}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndDeleteZoneRecord(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void DeleteZoneRecordAsync(string zoneName, DnsRecord record) {
            this.DeleteZoneRecordAsync(zoneName, record, null);
        }
        
        /// <remarks/>
        public void DeleteZoneRecordAsync(string zoneName, DnsRecord record, object userState) {
            if ((this.DeleteZoneRecordOperationCompleted == null)) {
                this.DeleteZoneRecordOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteZoneRecordOperationCompleted);
            }
            this.InvokeAsync("DeleteZoneRecord", new object[] {
                        zoneName,
                        record}, this.DeleteZoneRecordOperationCompleted, userState);
        }
        
        private void OnDeleteZoneRecordOperationCompleted(object arg) {
            if ((this.DeleteZoneRecordCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteZoneRecordCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/AddZoneRecords", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void AddZoneRecords(string zoneName, DnsRecord[] records) {
            this.Invoke("AddZoneRecords", new object[] {
                        zoneName,
                        records});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddZoneRecords(string zoneName, DnsRecord[] records, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddZoneRecords", new object[] {
                        zoneName,
                        records}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndAddZoneRecords(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void AddZoneRecordsAsync(string zoneName, DnsRecord[] records) {
            this.AddZoneRecordsAsync(zoneName, records, null);
        }
        
        /// <remarks/>
        public void AddZoneRecordsAsync(string zoneName, DnsRecord[] records, object userState) {
            if ((this.AddZoneRecordsOperationCompleted == null)) {
                this.AddZoneRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddZoneRecordsOperationCompleted);
            }
            this.InvokeAsync("AddZoneRecords", new object[] {
                        zoneName,
                        records}, this.AddZoneRecordsOperationCompleted, userState);
        }
        
        private void OnAddZoneRecordsOperationCompleted(object arg) {
            if ((this.AddZoneRecordsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddZoneRecordsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/dotpanel/server/DeleteZoneRecords", RequestNamespace="http://smbsaas/dotpanel/server/", ResponseNamespace="http://smbsaas/dotpanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteZoneRecords(string zoneName, DnsRecord[] records) {
            this.Invoke("DeleteZoneRecords", new object[] {
                        zoneName,
                        records});
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginDeleteZoneRecords(string zoneName, DnsRecord[] records, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("DeleteZoneRecords", new object[] {
                        zoneName,
                        records}, callback, asyncState);
        }
        
        /// <remarks/>
        public void EndDeleteZoneRecords(System.IAsyncResult asyncResult) {
            this.EndInvoke(asyncResult);
        }
        
        /// <remarks/>
        public void DeleteZoneRecordsAsync(string zoneName, DnsRecord[] records) {
            this.DeleteZoneRecordsAsync(zoneName, records, null);
        }
        
        /// <remarks/>
        public void DeleteZoneRecordsAsync(string zoneName, DnsRecord[] records, object userState) {
            if ((this.DeleteZoneRecordsOperationCompleted == null)) {
                this.DeleteZoneRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteZoneRecordsOperationCompleted);
            }
            this.InvokeAsync("DeleteZoneRecords", new object[] {
                        zoneName,
                        records}, this.DeleteZoneRecordsOperationCompleted, userState);
        }
        
        private void OnDeleteZoneRecordsOperationCompleted(object arg) {
            if ((this.DeleteZoneRecordsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteZoneRecordsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void ZoneExistsCompletedEventHandler(object sender, ZoneExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ZoneExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal ZoneExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetZonesCompletedEventHandler(object sender, GetZonesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetZonesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetZonesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddPrimaryZoneCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddSecondaryZoneCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteZoneCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateSoaRecordCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetZoneRecordsCompletedEventHandler(object sender, GetZoneRecordsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetZoneRecordsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetZoneRecordsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public DnsRecord[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((DnsRecord[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddZoneRecordCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteZoneRecordCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddZoneRecordsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteZoneRecordsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
}
